types of errors in c language